S3の双方向レプリケーション設定時に、同一のオブジェクト名で上書きすると、レプリケーション先のリージョンのオブジェクトはどうなりますか?
困っていること
S3バケットの双方向レプリケーションを設定しています。
お互いのバケットはそれぞれ異なるリージョン(A, B)に存在しています。
リージョン A に既にオブジェクト名: X が存在している状態で、リージョン B にオブジェクト名: X を保存した場合、どのような挙動になりますか?無限ループになりませんか?
どう対応すればいいの?
リージョン A に既にオブジェクト名: X が存在している状態で、リージョン B にオブジェクト名: X を保存した場合、リージョン A のオブジェクト名: X の最新バージョンは、リージョン B のオブジェクト名: X に置き換わります。
なお、S3 バケットはバージョニングが有効になっているため、古いバージョンのオブジェクトは削除されずに保持されます。
無限ループは発生しません。
やってみた
参考資料[2]を元に東京リージョンと大阪リージョンに双方向レプリケーションを設定した S3 バケットを作成します。
東京リージョンの S3 に下記 aaa.txt を下記の内容で配置します。
aaa.txt ap-northeast-1
しばらく待つと、大阪リージョンの S3 に aaa.txt がレプリケーションされました。
内容も、aaa.txt と同じ内容になっていますね。
では、大阪リージョンの S3 に下記内容の aaa.txt を保存します。
aaa.txt ap-northeast-3
しばらく待つと、東京リージョンの S3 に aaa.txt の最新バージョンが発生しており、旧バージョンも内容が残っています。
内容も、大阪リージョンに保存した内容と同じになっていることを確認しました。
参考資料
[1]双方向レプリケーションを使用する場合 - オブジェクトのレプリケーション - Amazon Simple Storage Service